package com.alpha.schema.beans;

import lombok.Data;
import lombok.experimental.Accessors;

import java.util.ArrayList;
import java.util.List;

/**
 * 元数据数据表属性定义
 *
 * @author chenruwan
 * @since 2022-01-01
 */
@Data
@Accessors(chain = true)
public class Table {
    /**
     * 数据库表名（使用数据库命名规则），一般使用复数
     */
    String name;
    /**
     * 表别名，用于uri和包名（默认等于数据库表名）
     */
    String alias;
    /**
     * 表名对应的单数形式，用于类名、变量名
     */
    String singular;
    /**
     * 描述，用于数据库COMMENT和接口文档
     */
    String desc;
    /**
     * 是否需要操作日志（默认false）（待定）
     */
    String traceable;
    /**
     * 默认排序字段（多个字段使用逗号分隔，降序在字符名前添加减号）
     */
    String orders;

    List<Field> fields = new ArrayList<>();

    List<Foreign> foreigners = new ArrayList<>();

    List<Relation> relations = new ArrayList<>();
}
